3.6 红外收发模块

打开在GitHub上下载至本地的红外收发模块的文件,将整个ir_tx文件夹上传至芯片内部。

如下图所示,上传文件夹的方法和上传单独文件的方法一致。

双击打开main.py文件,点击运行,命令行运行结果为running,表明运行成功。

当接收到未知信号时,会出现如下图“Invalid start pulse”的提示。此时说明红外接收模块正常工作。

main.py源码如下:
#导入所需类
from sys import platform
import time
import gc
from machine import Pin, freq
#导入文件夹中的包
from ir_rx.print_error import print_error
from ir_rx.nec import NEC_8, NEC_16, SAMSUNG
from ir_rx.sony import SONY_12, SONY_15, SONY_20
from ir_rx.philips import RC5_IR, RC6_M0
from ir_rx.mce import MCE
#定义ir接收引脚
ir_read = Pin(25, Pin.IN)
#callback子程序
def cb(data, addr, ctrl):
if data < 0:
print("Repeat code.")
else:
print(r"Data 0x{data:02x} Addr 0x{addr:04x} Ctrl 0x{ctrl:02x}")
#初始化协议
classes = (NEC_8, NEC_16, SONY_12, SONY_15, SONY_20, RC5_IR, RC6_M0, MCE, SAMSUNG)
ir = classes[0](ir_read, cb)
ir.error_function(print_error)
#循环接收信号
while True:
print("running")
time.sleep(2)
gc.collect()
如需程序自动运行,可以将main.py提到最外层,即与文件夹同一层,如下图所示。
